The background description provided herein is for the purpose of generally presenting the context of the disclosure. Work of the presently named inventors, to the extent it is described in this background section, as well as aspects of the description that may not otherwise qualify as prior art at the time of filing, are neither expressly nor impliedly admitted as prior art against the present disclosure.
Today, certain software applications with user interfaces support functionality for embedding other software applications that have other, independent user interfaces. To this end, a framework software application running in a framework window (or another suitable graphical control element) typically allocates a smaller window inside the framework, allows the embedded application to surface its own user interface in the smaller window, and cedes control over the smaller window to the embedded application. In general, interactions between the user interfaces of the two software applications (the framework software application and the embedded software application) are limited. For example, drag-and-drop controls supported by the framework software application are not supported inside the smaller window for several reasons: it is generally undesirable for the framework software application to impose its user interface requirements onto the embedded application; it is generally desirable to allow the embedded application to exercise full control over its window; and the developer framework software application cannot assume architectural requirements of the embedded application.
One example of limited integration of an embedded application into a framework application is discussed below with reference to Microsoft's COM technology and web browsers. Microsoft introduced component object model (COM) add-in technology to make extending Microsoft Office easier for third-party application developers. COM add-ins can provide updates and generally expand the functionality of the existing Office applications, and can be built using any COM compliant tool (VBA, Visual Basic, Visual C++, etc.). An existing Office application (Outlook, Excel, Word, etc.) serves as a host for the add-in, which is a compiled DLL that is written and registered so that the Office application knows how to load and communicate with the add-in. For example, a web browser application interface can be hosted within Microsoft Outlook using a COM add-in. The web browser application interface is displayed as part of Outlook, i.e., appearing alongside Outlook's email interface. Advantageously, while the COM add-in may need to be downloaded, users do not need to download the web browser application itself, which allows changes and/or updates to the web application to be passed on to users without the need for a download.
However, one problem with extending Office using a COM add-in that implements a web browser application is that web browser controls do not natively support the ability to drag and drop objects from the Office interface directly into the web browser application. That is, while dragging and dropping objects within the Office interface is a standard feature (e.g., a user can click on an email or other document and drag it to a folder by holding down a mouse button over the document object, moving the cursor to the desired folder, and releasing the mouse button), dragging and dropping objects between the Office interface and the COM add-in web browser application interface is not supported. Consequently, it is not currently possible to drag an object (e.g., an email) from a first location (e.g., a folder) within the Office interface to a second location (e.g., another folder) within the web browser application interface and drop it there. Instead, when a user attempts to drop an Office object at a location within a web browser application interface, the web browser application will navigate to the object's file and render the object as a web page. Consequently, because the web browser application interface renders and displays these objects rather than interacting with them, the functionality of the web browser application hosted within the Office application is limited.